package com.iwhalecloud.bss.kite.cucc.service.pos.bcmc.dispatcher.impl;

import java.util.List;

import org.springframework.stereotype.Component;

import com.google.common.collect.Lists;
import com.iwhalecloud.bss.kite.common.chain.IHandler;
import com.iwhalecloud.bss.kite.cucc.service.pos.bcmc.BcmcPosContext;
import com.iwhalecloud.bss.kite.cucc.service.pos.bcmc.handler.impl.BcmcPosAcceptStaffHandler;
import com.iwhalecloud.bss.kite.cucc.service.pos.bcmc.handler.impl.BcmcPosAccountHandler;
import com.iwhalecloud.bss.kite.cucc.service.pos.bcmc.handler.impl.BcmcPosAgentHandler;
import com.iwhalecloud.bss.kite.cucc.service.pos.bcmc.handler.impl.BcmcPosContractHandler;
import com.iwhalecloud.bss.kite.cucc.service.pos.bcmc.handler.impl.BcmcPosCustomerHandler;
import com.iwhalecloud.bss.kite.cucc.service.pos.bcmc.handler.impl.BcmcPosDeliveryHandler;
import com.iwhalecloud.bss.kite.cucc.service.pos.bcmc.handler.impl.BcmcPosDeveloperHandler;
import com.iwhalecloud.bss.kite.cucc.service.pos.bcmc.handler.impl.BcmcPosDiscountHandler;
import com.iwhalecloud.bss.kite.cucc.service.pos.bcmc.handler.impl.BcmcPosGoodsHandler;
import com.iwhalecloud.bss.kite.cucc.service.pos.bcmc.handler.impl.BcmcPosLinkmanHandler;
import com.iwhalecloud.bss.kite.cucc.service.pos.bcmc.handler.impl.BcmcPosOperatorHandler;
import com.iwhalecloud.bss.kite.cucc.service.pos.bcmc.handler.impl.BcmcPosOrderHandler;
import com.iwhalecloud.bss.kite.cucc.service.pos.bcmc.handler.impl.BcmcPosPaymentHandler;
import com.iwhalecloud.bss.kite.cucc.service.pos.bcmc.handler.impl.BcmcPosRequestHandler;
import com.iwhalecloud.bss.kite.cucc.service.pos.bcmc.handler.impl.BcmcPosTransferPlanHandler;
import com.iwhalecloud.bss.kite.cucc.service.pos.bcmc.handler.impl.BcmcPosUserHandler;
import com.ztesoft.bss.common.util.SpringUtil;

/**
 * <Description> <br>
 * 商品订购调度器
 * 
 * @author XXZ<br>
 * @version 1.0<br>
 * @taskId <br>
 * @CreateDate 2020年12月18日 <br>
 * @since R9.0<br>
 * @see com.iwhalecloud.bss.kite.cucc.service.pos.bcmc.dispatcher.impl <br>
 */
@Component
public class BcmcOrderGoodsDispatcher extends AbstractBcmcOrderDispatcher {

    @Override
    public List<IHandler<BcmcPosContext>> registerHandlers() {

        List<IHandler<BcmcPosContext>> handlers = Lists.newArrayList();
        handlers.add(SpringUtil.getBean(BcmcPosAcceptStaffHandler.class));
        handlers.add(SpringUtil.getBean(BcmcPosRequestHandler.class));
        handlers.add(SpringUtil.getBean(BcmcPosCustomerHandler.class));
        handlers.add(SpringUtil.getBean(BcmcPosDeveloperHandler.class));
        handlers.add(SpringUtil.getBean(BcmcPosOperatorHandler.class));
        handlers.add(SpringUtil.getBean(BcmcPosAgentHandler.class));
        handlers.add(SpringUtil.getBean(BcmcPosLinkmanHandler.class));
        handlers.add(SpringUtil.getBean(BcmcPosOrderHandler.class));
        handlers.add(SpringUtil.getBean(BcmcPosUserHandler.class));

        handlers.add(SpringUtil.getBean(BcmcPosPaymentHandler.class));
        handlers.add(SpringUtil.getBean(BcmcPosDiscountHandler.class));
        handlers.add(SpringUtil.getBean(BcmcPosAccountHandler.class));
        handlers.add(SpringUtil.getBean(BcmcPosContractHandler.class));
        handlers.add(SpringUtil.getBean(BcmcPosDeliveryHandler.class));

        handlers.add(SpringUtil.getBean(BcmcPosGoodsHandler.class));
        handlers.add(SpringUtil.getBean(BcmcPosTransferPlanHandler.class));

        return handlers;
    }

}
